To function effectively, complex organizations must coordinate the work schedules of many individual employees, different kinds of employees, and other resources. Moreover, because skilled and experienced workers are often a scarce resource, and because payroll is the single largest expense for many businesses, schedules must use employees' time as efficiently as possible. The preferences of individual employees as well as union and government regulations further constrain acceptable work patterns. Creating a work schedule that satisfies requirements like these—arising from multiple, potentially conflicting sources—is a challenging mathematical problem. In practice, it is often impossible to find the best schedule with ‘pencil and paper’ methods, even when a relatively small number of employees are involved.
As an example, consider the problem of staffing a hospital ward, an emergency room, or an operating room. An adequate staffing pattern must satisfy many requirements: a certain number of doctors must always be physically present, another number of doctors must be available ‘on call,’ and these numerical demands will be higher during hours and days of expected peak demand. Among the doctors present, several must be senior or board-certified physicians. Physicians in training cannot legally work more than 100 hours per week, or more than 36 hours consecutively. Operating room teams must be scheduled together, and must be present whenever a surgeon is present. There must be at least one physician anesthesiologist to supervise every three nurse anesthetists. Staff with various religious affiliations will be unavailable on certain days of the week and on religious holidays that vary from one religion to another. Other employees may be unwilling or unable to work night shifts, or to work more than half time. Some employees may dislike each other and demand that their schedules not overlap. No one in the nurses' union can be required to work on three consecutive weekends, and no one can be in two places at once.
A traditional way to deal with such overwhelming complexity is simply to avoid it. Organizations routinely create work schedules by disregarding individual preferences and by fitting their workers into simple, fixed, repeating shifts. But overly rigid schedules are inefficient and waste employees' time. And when skilled workers are in demand, businesses are at a competitive disadvantage unless they can offer potential employees flexibility and consideration of their individual needs.
It is therefore desirable to have systems that automate the difficult process of constructing employee schedules. Many currently available employee scheduling systems are little more than ‘fill-in’ programs. They allow a user to enter an employee name into a work position on a single day or on a succession of days and then reformat the schedule and compile hourly work statistics. A few more sophisticated programs allow users to choose from a small number of hard-wired scheduling patterns or templates, and help the user fill those in.